import * as types from '@/store/types.js';
import { getProductList,getCategories,getProductDetail } from "@/api/Product.js"
	
export default {
  state: {
	  Categories:{},
    ProductList: {},
    ProductDetail: {}
  },
  
  getters: {
    /*** 返回 测试数据 数据 ***/
    [types.GProductList](state) {
      return state.ProductList;
    },
    /**
    * 返回 商品分类 数据
    */
    [types.GCategories](state) {
        return state.Categories;
    },
    /**
    * 返回 商品详情 数据
    */
    [types.GProductDetail](state) {
        return state.ProductDetail;
    },
  },

  actions: {
    /**
     * 获取 商品分类 数据
     */
    [types.ACategories](ctx) {
      return new Promise((resolve, reject) => {
        getCategories().then(({data}) => {
          console.log(data)
           ctx.commit(types.MCategories,data);
           resolve();
        }).catch(error => {
           ctx.commit(types.MCategories,{});
           reject(error);
        });
      });
    },

	  /**
     * 获取 测试数据 数据
     */
    [types.AProductList](ctx, query) {
      return new Promise((resolve, reject) => {		  
		  getProductList(query).then(({data})=>{	
		  	ctx.commit(types.MProductList,data);
			resolve();
		  }).catch(err=>{		  	
		  	ctx.commit(types.MProductList,{});
			reject(err);
		  })
      });
    },
    /**
     * 获取 商品详情 数据
     */
    [types.AProductDetail](ctx, query) {
      return new Promise((resolve, reject) => {
        getProductDetail(query).then(({data}) => {
           ctx.commit(types.MProductDetail,data);
           resolve();
        }).catch(error => {
           ctx.commit(types.MProductDetail, {});
           reject(error);
        });
      });
    },
  },

  mutations: {
    /*** 填充 测试数据 数据 ***/
    [types.MProductList](state, access) {
      state.ProductList = access;
    },
    
    /**
    * 填充 商品分类 数据
    */
    [types.MCategories](state, access) {
        state.Categories = access;
    },
    /**
    * 填充 商品详情 数据
    */
    [types.MProductDetail](state, access) {
        state.ProductDetail = access;
    },
  }
};